iT邦幫忙

0

Day 19:越權存取:水平越權(IDOR)與垂直越權觀念剖析

  • 分享至 

  • xImage
  •  

💡 什麼是存取控制失效與越權漏洞?
在前面幾天探討完注入與 XSS 攻擊後,今天我們要聚焦在 Web 應用程式邏輯安全中最常見、也最容易被忽略的漏洞——越權漏洞(Privilege Escalation)。

在現代網頁中,驗證(Authentication)解決的是「你是誰」的問題,而授權(Authorization)解決的是「你能做什麼」的問題。
當應用程式在處理使用者的請求時,如果沒有確實檢查當前身分是否有權限操作該資源,就會導致使用者能夠跨越權限邊界,這就是存取控制失效(Broken Access Control),也是 OWASP Top 10 中常年居冠的高危風險。

👥 越權漏洞的兩大經典類型
越權漏洞主要可分為以下兩種維度:

  1. 水平越權:不安全的直接物件參考(IDOR, Insecure Direct Object References)
    情境: 攻擊者與受害者擁有相同的權限等級(例如都是一般會員),但攻擊者透過修改請求中的識別參數(如 ID、帳號、檔案名稱),成功存取或修改了其他同級使用者的私人資料。

經典範例:
當你登入電商網站查看訂單,網址為 https://shop.com/order?id=1001。
此時若將 id 改成 1002,伺服器卻毫無驗證地把別人的訂單詳細資料與收件地址回傳給妳,這就是典型的 IDOR。

  1. 垂直越權:低權限存取高權限功能(Vertical Privilege Escalation)
    情境: 低權限的使用者(例如一般訪客或普通會員),透過直接猜測或造訪後台網址、或竄改請求中的角色參數(如 role=admin),直接執行了只有管理員才能使用的敏感操作。

經典範例:
普通會員如果在瀏覽器直接輸入管理員專用介面 https://shop.com/admin/delete_user,若後端只檢查了「有沒有登入」,卻漏掉了檢查「登入者的角色是否為 Admin」,就會導致普通會員成功刪除系統用戶。

🛠️ 如何預防與修復越權漏洞?
落實伺服器端存取控制檢查(Server-side Authorization): 絕對不能只靠前端隱藏按鈕或導覽列來防守。每一個 API 或路由被請求時,後端都必須再次核對「當前登入的使用者究竟是不是該物件的擁有者/是否有對應角色」。

採用隨機或間接參考識別碼(Indirect References): 避免直接使用連續的整數 ID(如 1, 2, 3...)作為資料庫主鍵暴露在網址上,可改用 UUID 或進行雜湊加密,增加攻擊者猜測的難度。

實施集中式權限驗證框架: 利用成熟的框架中介軟體(Middleware)來統一管理權防邏輯,避免漏掉個別 API 的檢查。


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言